//
// Copyright (c) 2024 BPer
//
#ifndef ___BPerAudioEncoderPipe__
#define ___BPerAudioEncoderPipe__

#include <bperutil/sys/BPerThread2.h>
#include <bperutil/BPerAvInfoType.h>
#include <bperutil/buffer/BPerAudioEncoderBuffer.h>
#include <bperutil/buffer/BPerAudioBuffer.h>
#include <bperencoder/BPerEncoder.h>


class BPerAudioEncoder
{
public:
	BPerAudioEncoder();
	virtual ~BPerAudioEncoder(void);
    virtual void init(BPerAudioInfo *pap)=0;
    virtual int32_t encoder(BPerFrame* pframe,BPerEncoderCallback* pcallback)=0;
    void stop();
    int32_t m_uid;

protected:
    void setAudioPara(BPerAudioInfo *audioInfo);
	int32_t m_isInit;
	BPerAudioInfo m_audioInfo;

};

#endif
